/* 初始化原规格并显示表格 */
function initProductSku(){
    //存放SKU类型的数组
    var skuTypeArr =  [];
    //总行数
    var totalRow = 1;
    //订单类型
    var proType = $("#proTypeVal").val();
    //获取元素类型
    $(".SKU_TYPE1").each(function(){
        //SKU类型节点
        var skuTypeNode = $(this).children("li");
        var skuTypeObj = {};//sku类型对象
        //SKU属性类型标题
        skuTypeObj.skuTypeTitle = $(skuTypeNode).attr("sku-type-name");
        skuValueArr = [];//存放SKU值的数组
        //SKU相对应的节点
        var skuValNode = $(this).next();
        //获取SKU
        var skuValCheckBoxs = $(skuValNode).find("input[type='checkbox'][class='model_sku_val_old']");
        var checkedNodeLen = 0 ;//选中的SKU节点的个数
        $(skuValCheckBoxs).each(function(){
            var skuValObj = {};//SKU值对象
            if($(this).val() != null && $(this).val().length > 0){
                skuValObj.skuValueTitle = $(this).val();//SKU值名称
                skuValueArr.push(skuValObj);
            }
            checkedNodeLen ++ ;
        });
        if(skuValueArr && skuValueArr.length > 0){
            totalRow = totalRow * skuValueArr.length;
            skuTypeObj.skuValues = skuValueArr;//sku值数组
            skuTypeObj.skuValueLen = skuValueArr.length;//sku值长度
            skuTypeArr.push(skuTypeObj);//保存进数组
        }
    });
    //sku表格数据
    var SKUTableDom = "";
    //创建行
    SKUTableDom += "<table id='oldData' class='layui-table skuTable'><tr>";
    //创建表头
    for(var t = 0 ; t < skuTypeArr.length ; t ++){
        if(skuTypeArr[t].skuTypeTitle != null && skuTypeArr[t].skuTypeTitle.length > 0){
            SKUTableDom += '<th style="text-align: center!important;font-weight: bold">'+skuTypeArr[t].skuTypeTitle+'</th>';
        }
    }
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">库存<br>';
    SKUTableDom += '<input id="stockBatch" type="text" class="batch" onchange="batchSet(1)"></th>';
    if(proType!=4){
        SKUTableDom += '<th style="text-align: center!important;font-weight: bold">成本价<br>';
        SKUTableDom += '<input id="costBatch" type="text" class="batch" onchange="batchSet(2)"></th>';
        SKUTableDom += '<th style="text-align: center!important;font-weight: bold">建议销售价<br>';
        SKUTableDom += '<input id="priceBatch" type="text" class="batch" onchange="batchSet(3)"></th>';
    }
    if(proType==3){
        SKUTableDom += '<th style="text-align: center!important;font-weight: bold;">团购单价<br>';
        SKUTableDom += '<input id="groupBatch" type="text" class="batch groupPriceSet" onchange="batchSet(4)"></th>';
    }
    if (proType==4){
        SKUTableDom += '<th style="text-align: center!important;font-weight: bold;">积分<br>';
        SKUTableDom += '<input id="pointBatch" type="text" class="batch pointSet" onchange="batchSet(5)"></th>';
    }
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">单位</th>';
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">SKU编码</th></tr>';
    //循环处理表体
    for(var i = 0 ; i < totalRow ; i ++){//总共需创建多少行
        var currRowDoms = "";
        var rowCount = 1;//记录行数
        var propvalnameArr = [];//SKU值名称
        var propNameArr = [];//属性名称
        for(var j = 0 ; j < skuTypeArr.length ; j ++){
            var skuValues = skuTypeArr[j].skuValues;//SKU值数组
            var skuValueLen = skuValues.length;//sku值长度
            rowCount = (rowCount * skuValueLen);//目前的生成的总行
            var anInterBankNum = (totalRow / rowCount);
            var point = ((i / anInterBankNum) % skuValueLen);
            propNameArr.push(skuTypeArr[j].skuTypeTitle);
            if(0  == (i % anInterBankNum)){//需创建的td
                currRowDoms += '<td rowspan='+anInterBankNum+'>'+skuValues[point].skuValueTitle+'</td>';
                propvalnameArr.push(skuValues[point].skuValueTitle);
            }else{
                //当前单元格为跨行
                propvalnameArr.push(skuValues[parseInt(point)].skuValueTitle);
            }
        }
        SKUTableDom += '<tr propvalnames=\''+propvalnameArr.join(";")+'\' propnames=\''+propNameArr.join(";")+'\' class="sku_table_tr">'+currRowDoms;
        SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="stock" class="input-this stock" value="'+array[i].stock+'"/></td>';
        if(proType!=4){
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="cost" class="input-this cost" value="'+array[i].cost+'"/></td>';
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="price" class="input-this price" value="'+array[i].price+'"/></td>';
        }
        /* 商品类型的判断显示 */
        if(proType==3){
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="groupPrice" class="input-this groupPrice" value="'+array[i].groupPrice+'"/></td>';
        }
        if(proType==4){
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="point" class="input-this point" value="'+array[i].point+'"/></td>';
        }
        /* 计价方式的单位判断显示 */
        if(vType==1){
            SKUTableDom += '<td width="8%"><input type="text" autocomplete="off" disabled class="unitOld" value="'+"元/"+unit+'"/></td>';
        }else if(vType==2){
            SKUTableDom += '<td width="8%"><input type="text" autocomplete="off" disabled class="unitOld" value="'+"元/"+wUnit+unit+'"/></td>';
        }
        SKUTableDom += '<td width="10%"><input type="text" name="skuCode" class="input-this-disabled skuCode" value="'+array[i].skuCode+'" disabled/>';
        SKUTableDom += '<input type="hidden" name="id" value="'+array[i].skuId+'"/></td>';
        SKUTableDom += '</tr>';
    }
    SKUTableDom += "</table>";
    $("#skuTableShow").html(SKUTableDom);
}

/* 规格动态改变事件 */
$(".cusSkuValInputOld").on("change",function () {
    var editVal = $("#skuChangeFlag").val();
    var newArr = getSkuDynamicData();
    //存放SKU类型的数组
    var skuTypeArr =  [];
    //总行数
    var totalRow = 1;
    //订单类型
    var proType = $("#proTypeVal").val();
    //获取元素类型
    $(".SKU_TYPE1").each(function(){
        //SKU类型节点
        var skuTypeNode = $(this).children("li");
        var skuTypeObj = {};//sku类型对象
        //SKU属性类型标题
        skuTypeObj.skuTypeTitle = $(skuTypeNode).attr("sku-type-name");
        skuValueArr = [];//存放SKU值的数组
        //SKU相对应的节点
        var skuValNode = $(this).next();
        //获取SKU
        var skuValCheckBoxs = $(skuValNode).find("input[type='checkbox'][class='model_sku_val_old']");
        var checkedNodeLen = 0 ;//选中的SKU节点的个数
        //动态sku值数组
        $(skuValCheckBoxs).each(function(){
            //SKU值对象
            var skuValObj = {};
            if($(this).val() != null && $(this).val().length > 0){
                //SKU值名称
                skuValObj.skuValueTitle = $(this).val();
                skuValueArr.push(skuValObj);
            }
            checkedNodeLen ++ ;
        });
        if(skuValueArr && skuValueArr.length > 0){
            totalRow = totalRow * skuValueArr.length;
            skuTypeObj.skuValues = skuValueArr;//sku值数组
            skuTypeObj.skuValueLen = skuValueArr.length;//sku值长度
            skuTypeArr.push(skuTypeObj);//保存进数组
        }
    });
    //sku表格数据
    var SKUTableDom = "";
    //创建行
    SKUTableDom += "<table id='oldData' class='layui-table skuTable'><tr>";
    //创建表头
    for(var t = 0 ; t < skuTypeArr.length ; t ++){
        if(skuTypeArr[t].skuTypeTitle != null && skuTypeArr[t].skuTypeTitle.length > 0){
            SKUTableDom += '<th style="text-align: center!important;font-weight: bold">'+skuTypeArr[t].skuTypeTitle+'</th>';
        }
    }
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">库存<br>';
    SKUTableDom += '<input id="stockBatch" type="text" class="batch" onchange="batchSet(1)"></th>';
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">成本价<br>';
    SKUTableDom += '<input id="costBatch" type="text" class="batch" onchange="batchSet(2)"></th>';
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">建议销售价<br>';
    SKUTableDom += '<input id="priceBatch" type="text" class="batch" onchange="batchSet(3)"></th>';
    if(proType==3){
        SKUTableDom += '<th style="text-align: center!important;font-weight: bold;">团购单价<br>';
        SKUTableDom += '<input id="groupBatch" type="text" class="batch groupPriceSet" onchange="batchSet(4)"></th>';
    }
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">单位</th>';
    SKUTableDom += '<th style="text-align: center!important;font-weight: bold">SKU编码</th></tr>';
    //循环处理表体
    for(var i = 0 ; i < totalRow ; i ++){//总共需创建多少行
        var currRowDoms = "";
        var rowCount = 1;//记录行数
        var propvalnameArr = [];//SKU值名称
        var propNameArr = [];//属性名称
        for(var j = 0 ; j < skuTypeArr.length ; j ++){
            var skuValues = skuTypeArr[j].skuValues;//SKU值数组
            var skuValueLen = skuValues.length;//sku值长度
            rowCount = (rowCount * skuValueLen);//目前的生成的总行
            var anInterBankNum = (totalRow / rowCount);
            var point = ((i / anInterBankNum) % skuValueLen);
            propNameArr.push(skuTypeArr[j].skuTypeTitle);
            if(0  == (i % anInterBankNum)){//需创建的td
                currRowDoms += '<td rowspan='+anInterBankNum+'>'+skuValues[point].skuValueTitle+'</td>';
                propvalnameArr.push(skuValues[point].skuValueTitle);
            }else{
                //当前单元格为跨行
                propvalnameArr.push(skuValues[parseInt(point)].skuValueTitle);
            }
        }
        SKUTableDom += '<tr propvalnames=\''+propvalnameArr.join(";")+'\' propnames=\''+propNameArr.join(";")+'\' class="sku_table_tr">'+currRowDoms;
        if(editVal == 0 || editVal == 1){
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="stock" class="input-this stock" value="'+array[i].stock+'"/></td>';
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="cost" class="input-this cost" value="'+array[i].cost+'"/></td>';
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="price" class="input-this price" value="'+array[i].price+'"/></td>';
            /* 商品类型的判断显示 */
            if(proType==3){
                SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="groupPrice" class="input-this groupPrice" value="'+array[i].groupPrice+'"/></td>';
            }
            /* 计价方式的单位判断显示 */
            if(vType==1){
                SKUTableDom += '<td width="8%"><input type="text" autocomplete="off" disabled class="unitOld" value="'+"元/"+unit+'"/></td>';
            }else if(vType==2){
                SKUTableDom += '<td width="8%"><input type="text" autocomplete="off" disabled class="unitOld" value="'+"元/"+wUnit+unit+'"/></td>';
            }
            SKUTableDom += '<td width="10%"><input type="text" name="skuCode" class="input-this-disabled skuCode" value="'+array[i].skuCode+'" disabled/>';
            SKUTableDom += '<input type="hidden" name="id" value=""/></td>';
        }else{
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="stock" class="input-this stock" value=""/></td>';
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="cost" class="input-this cost" value=""/></td>';
            SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="price" class="input-this price" value=""/></td>';
            /* 商品类型的判断显示 */
            if(proType==3){
                SKUTableDom += '<td width="10%"><input type="text" autocomplete="off" name="groupPrice" class="input-this groupPrice" value=""/></td>';
            }
            /* 计价方式的单位判断显示 */
            if(vType==1){
                SKUTableDom += '<td width="8%"><input type="text" autocomplete="off" disabled class="unitOld" value="'+"元/"+unit+'"/></td>';
            }else if(vType==2){
                SKUTableDom += '<td width="8%"><input type="text" autocomplete="off" disabled class="unitOld" value="'+"元/"+wUnit+unit+'"/></td>';
            }
            SKUTableDom += '<td width="10%"><input type="text" name="skuCode" class="input-this-disabled skuCode" value="" disabled/>';
            SKUTableDom += '<input type="hidden" name="id" value=""/></td>';
        }


        SKUTableDom += '</tr>';
    }
    SKUTableDom += "</table>";
    $("#skuTableShow").html(SKUTableDom);
    //SKU编码列动态设置
    dynamicSetDisabled();
});

/* JavaScript笛卡尔积 */
function calcDescartes (array) {
    if (array.length < 2) return array[0] || [];
    return [].reduce.call(array, function (col, set) {
        var res = [];
        var rr = "";
        col.forEach(function (c) {
            set.forEach(function (s) {
                var t = [].concat(Array.isArray(c) ? c : [c]);
                t.push(s);
                rr = c+","+s;
                res.push(rr);
            })
        });
        return res;
    });
}

/* 规格改变后获取动态的array数组 */
function getSkuDynamicData(){
    var all = new Array();
    $(".SKU_TYPE1").each(function (e) {
        var typeid = $(this).children("li").find(".specmain_old").attr("data-id");
        if(typeid != null && typeid.length > 0){
            var skuGroup = new Array();
            $(".detail"+typeid).each(function () {
                var skuValArr = new Array();
                var skuval = $(this).prev().val();
                if(skuval != null && skuval.length > 0){
                    skuValArr.push(skuval);
                    skuGroup.push(skuValArr);
                }
            });
            all.push(skuGroup);
        }
    });
    var descArr = calcDescartes(all);
    var oneArr = array;
    for (var i = 0; i < descArr.length; i++) {
        var detail = {};
        if(oneArr[i] != null){
            if(descArr[i] == oneArr[i].specName){
            }else{
                detail.skuId = "";
                detail.stock = "";
                detail.cost = "";
                detail.price = "";
                detail.groupPrice = "";
                detail.skuCode = "";
                detail.specName = "";
                oneArr.splice(i, 0, detail);
                continue;
            }
            continue;
        }else{
            detail.skuId = "";
            detail.stock = "";
            detail.cost = "";
            detail.price = "";
            detail.groupPrice = "";
            detail.skuCode = "";
            detail.specName = "";
            oneArr.splice(i, 0, detail);
            continue;
        }
    }
    return oneArr;
}

/* 动态设置SKU编码的可编辑性 */
function dynamicSetDisabled(){
    $(".skuCode").each(function (e) {
        var code = $(this).val();
        if(code == "" && code.length < 1){
            $(this).removeClass("input-this-disabled");
            $(this).addClass("input-this");
            $(this).removeAttr("disabled");
            $(this).attr("need-check",1);
        }
    })
}

/*
function calcDescartes (array) {
    if (array.length < 2) return array[0] || [];
    return [].reduce.call(array, function (col, set) {
        var res = [];
        col.forEach(function (c) {
            set.forEach(function (s) {
                var t = [].concat(Array.isArray(c) ? c : [c]);
                t.push(s);
                res.push(t);
            })
        });
        return res;
    });
}*/
